package com.zhou.qualifier

/**
  *
  * @author lijizhou01
  * @date 2018/10/26
  * @since
  */
class ClassAuth {

  private def f1() {
    printf("f1")
  }

  class inner {
    private def f2(): Unit = {
      printf("f2")
    }

    protected def f3(): Unit = {
      printf("f3")
    }

    private[ClassAuth] def f4(): Unit = {
      printf("f4")
    }
  }

  class inner2 extends inner {
    //可以使用外部类的private修饰的方法
    f1()

    //子类可以使用protected修饰的方法
    f3()

    //不能使用
    //    f2()

    //private、protected[]中加上指定的类或者包，则指定包中的类可以使用该方法
    f4()
  }

  class inner3 {

  }

  //外部类不能使用内部类的私有方法，包括子类也不能使用
  //      (new inner).f2()

  (new inner).f4()

}
